﻿2026-06-04T12:50:06.3703787Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T12:50:06.3704089Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T12:50:06.3724547Z shell: /usr/bin/bash -e {0}
2026-06-04T12:50:06.3724755Z ##[endgroup]
2026-06-04T12:50:06.3954729Z Requirement quality findings (17); 129 requirements queued for agent review:
2026-06-04T12:50:06.3956041Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:50:06.3957117Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-04T12:50:06.3958065Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T12:50:06.3959289Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:50:06.3960380Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:50:06.3961214Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T12:50:06.3962328Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T12:50:06.3963270Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:50:06.3964313Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:50:06.3965039Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T12:50:06.3965698Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T12:50:06.3966253Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T12:50:06.3966853Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T12:50:06.3967666Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:50:06.3968446Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:50:06.3969026Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T12:50:06.3969689Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T12:50:06.3969718Z 
2026-06-04T12:50:06.3969947Z # Requirement quality review
2026-06-04T12:50:06.3969974Z 
2026-06-04T12:50:06.3970399Z You are reviewing 129 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T12:50:06.3970931Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T12:50:06.3971378Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T12:50:06.3971689Z this command's output. Your task is the rubric items below.
2026-06-04T12:50:06.3971710Z 
2026-06-04T12:50:06.3971881Z ## Rubric
2026-06-04T12:50:06.3971901Z 
2026-06-04T12:50:06.3972462Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T12:50:06.3972955Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T12:50:06.3973402Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T12:50:06.3973723Z - **active-voice** — clear subject and active verb.
2026-06-04T12:50:06.3973745Z 
2026-06-04T12:50:06.3974228Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T12:50:06.3974400Z clear concerns.
2026-06-04T12:50:06.3974419Z 
2026-06-04T12:50:06.3974594Z ## Requirements
2026-06-04T12:50:06.3974926Z 
2026-06-04T12:50:06.3975129Z ### REQ-ARCH-1
2026-06-04T12:50:06.3975374Z - Title: Many small acyclically-layered crates
2026-06-04T12:50:06.3975588Z - Required stages: impl
2026-06-04T12:50:06.3975609Z 
2026-06-04T12:50:06.3975773Z ### REQ-ARCH-2
2026-06-04T12:50:06.3976100Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T12:50:06.3976294Z - Required stages: impl
2026-06-04T12:50:06.3976313Z 
2026-06-04T12:50:06.3976476Z ### REQ-ARCH-3
2026-06-04T12:50:06.3976882Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T12:50:06.3977081Z - Required stages: impl, unit
2026-06-04T12:50:06.3977102Z 
2026-06-04T12:50:06.3977276Z ### REQ-ARCH-4
2026-06-04T12:50:06.3977623Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T12:50:06.3977822Z - Required stages: impl, unit
2026-06-04T12:50:06.3977841Z 
2026-06-04T12:50:06.3978021Z ### REQ-DAEMON-1
2026-06-04T12:50:06.3978342Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T12:50:06.3978569Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3978590Z 
2026-06-04T12:50:06.3978935Z ### REQ-DAEMON-2
2026-06-04T12:50:06.3979257Z - Title: Broker/brain split for seamless self-update
2026-06-04T12:50:06.3979478Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3979501Z 
2026-06-04T12:50:06.3979667Z ### REQ-DAEMON-3
2026-06-04T12:50:06.3979976Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T12:50:06.3980231Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3980259Z 
2026-06-04T12:50:06.3980424Z ### REQ-DAEMON-4
2026-06-04T12:50:06.3980665Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T12:50:06.3980868Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3980888Z 
2026-06-04T12:50:06.3981068Z ### REQ-STORE-1
2026-06-04T12:50:06.3983341Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T12:50:06.3983593Z - Required stages: impl, unit
2026-06-04T12:50:06.3983613Z 
2026-06-04T12:50:06.3983795Z ### REQ-MANIFEST-1
2026-06-04T12:50:06.3984154Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T12:50:06.3984373Z - Required stages: doc, impl, unit
2026-06-04T12:50:06.3984396Z 
2026-06-04T12:50:06.3984583Z ### REQ-SEAM-SPAWN
2026-06-04T12:50:06.3984780Z - Title: spawn-session seam
2026-06-04T12:50:06.3984986Z - Required stages: impl, unit
2026-06-04T12:50:06.3985005Z 
2026-06-04T12:50:06.3985185Z ### REQ-SEAM-POSTSPAWN
2026-06-04T12:50:06.3985454Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T12:50:06.3985658Z - Required stages: impl, unit
2026-06-04T12:50:06.3985678Z 
2026-06-04T12:50:06.3985853Z ### REQ-SEAM-PSYCHE
2026-06-04T12:50:06.3986129Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T12:50:06.3986347Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3986365Z 
2026-06-04T12:50:06.3986561Z ### REQ-SEAM-HISTORY
2026-06-04T12:50:06.3986916Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T12:50:06.3987133Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3987155Z 
2026-06-04T12:50:06.3987341Z ### REQ-SEAM-ACTIVITY
2026-06-04T12:50:06.3987690Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T12:50:06.3987899Z - Required stages: impl, unit
2026-06-04T12:50:06.3987921Z 
2026-06-04T12:50:06.3988095Z ### REQ-SEAM-INJECT
2026-06-04T12:50:06.3988419Z - Title: inject-input methods configurable per activity-state
2026-06-04T12:50:06.3988624Z - Required stages: impl, unit
2026-06-04T12:50:06.3988644Z 
2026-06-04T12:50:06.3988820Z ### REQ-SEAM-RESUME
2026-06-04T12:50:06.3989220Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T12:50:06.3989430Z - Required stages: impl, unit
2026-06-04T12:50:06.3989654Z 
2026-06-04T12:50:06.3989859Z ### REQ-SEAM-CAPABILITY
2026-06-04T12:50:06.3990160Z - Title: Hostable endpoint-types capability declaration
2026-06-04T12:50:06.3990366Z - Required stages: impl, unit
2026-06-04T12:50:06.3990387Z 
2026-06-04T12:50:06.3990572Z ### REQ-SEAM-UPDATE
2026-06-04T12:50:06.3990891Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T12:50:06.3991105Z - Required stages: impl, unit
2026-06-04T12:50:06.3991125Z 
2026-06-04T12:50:06.3991296Z ### REQ-API-1
2026-06-04T12:50:06.3991631Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T12:50:06.3991846Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3991865Z 
2026-06-04T12:50:06.3992026Z ### REQ-API-2
2026-06-04T12:50:06.3992446Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T12:50:06.3992659Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3992679Z 
2026-06-04T12:50:06.3992851Z ### REQ-API-3
2026-06-04T12:50:06.3993127Z - Title: commune/signoff are file-drops, not commands
2026-06-04T12:50:06.3993333Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3993493Z 
2026-06-04T12:50:06.3993681Z ### REQ-START-1
2026-06-04T12:50:06.3994070Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T12:50:06.3994269Z - Required stages: impl, unit
2026-06-04T12:50:06.3994288Z 
2026-06-04T12:50:06.3994462Z ### REQ-START-2
2026-06-04T12:50:06.3994727Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T12:50:06.3994940Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3994959Z 
2026-06-04T12:50:06.3995124Z ### REQ-START-3
2026-06-04T12:50:06.3995477Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T12:50:06.3995695Z - Required stages: impl, unit, int
2026-06-04T12:50:06.3995712Z 
2026-06-04T12:50:06.3995877Z ### REQ-START-4
2026-06-04T12:50:06.3996148Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T12:50:06.3996352Z - Required stages: impl, unit
2026-06-04T12:50:06.3996372Z 
2026-06-04T12:50:06.3996545Z ### REQ-EP-1
2026-06-04T12:50:06.3996814Z - Title: Day-one endpoint types; open type system
2026-06-04T12:50:06.3997010Z - Required stages: impl, unit
2026-06-04T12:50:06.3997030Z 
2026-06-04T12:50:06.3997205Z ### REQ-EP-2
2026-06-04T12:50:06.3997526Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T12:50:06.3997738Z - Required stages: impl, unit
2026-06-04T12:50:06.3997757Z 
2026-06-04T12:50:06.3997928Z ### REQ-EP-3
2026-06-04T12:50:06.3998286Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T12:50:06.3998493Z - Required stages: impl, unit
2026-06-04T12:50:06.3998516Z 
2026-06-04T12:50:06.3998675Z ### REQ-EP-4
2026-06-04T12:50:06.3998966Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T12:50:06.3999240Z - Required stages: impl, unit
2026-06-04T12:50:06.3999262Z 
2026-06-04T12:50:06.3999426Z ### REQ-EP-5
2026-06-04T12:50:06.4000823Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T12:50:06.4001015Z - Required stages: 
2026-06-04T12:50:06.4001036Z 
2026-06-04T12:50:06.4001212Z ### REQ-INST-1
2026-06-04T12:50:06.4001529Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T12:50:06.4001709Z - Required stages: 
2026-06-04T12:50:06.4001728Z 
2026-06-04T12:50:06.4001901Z ### REQ-INST-2
2026-06-04T12:50:06.4002126Z - Title: Per-node files, synced Psyche mind
2026-06-04T12:50:06.4002333Z - Required stages: impl, unit
2026-06-04T12:50:06.4002352Z 
2026-06-04T12:50:06.4002525Z ### REQ-INST-3
2026-06-04T12:50:06.4002811Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T12:50:06.4003026Z - Required stages: doc, impl, unit
2026-06-04T12:50:06.4003043Z 
2026-06-04T12:50:06.4003209Z ### REQ-INST-4
2026-06-04T12:50:06.4003729Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T12:50:06.4003934Z - Required stages: impl, unit
2026-06-04T12:50:06.4003977Z 
2026-06-04T12:50:06.4004143Z ### REQ-INST-5
2026-06-04T12:50:06.4004495Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T12:50:06.4004696Z - Required stages: impl, unit
2026-06-04T12:50:06.4004716Z 
2026-06-04T12:50:06.4013478Z ### REQ-INST-6
2026-06-04T12:50:06.4014022Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T12:50:06.4014228Z - Required stages: 
2026-06-04T12:50:06.4014251Z 
2026-06-04T12:50:06.4014426Z ### REQ-INST-7
2026-06-04T12:50:06.4014707Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T12:50:06.4014907Z - Required stages: impl, unit
2026-06-04T12:50:06.4014928Z 
2026-06-04T12:50:06.4015098Z ### REQ-INST-8
2026-06-04T12:50:06.4015395Z - Title: Remote-control mode distinct from local operation
2026-06-04T12:50:06.4015590Z - Required stages: impl, unit
2026-06-04T12:50:06.4015645Z 
2026-06-04T12:50:06.4015815Z ### REQ-INST-9
2026-06-04T12:50:06.4016173Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T12:50:06.4016763Z - Required stages: impl, unit
2026-06-04T12:50:06.4016785Z 
2026-06-04T12:50:06.4016947Z ### REQ-INST-10
2026-06-04T12:50:06.4017370Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T12:50:06.4017577Z - Required stages: impl, unit
2026-06-04T12:50:06.4017596Z 
2026-06-04T12:50:06.4017760Z ### REQ-INST-11
2026-06-04T12:50:06.4018186Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T12:50:06.4018384Z - Required stages: impl, unit
2026-06-04T12:50:06.4018416Z 
2026-06-04T12:50:06.4018579Z ### REQ-INST-12
2026-06-04T12:50:06.4019215Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T12:50:06.4019423Z - Required stages: impl, unit
2026-06-04T12:50:06.4019454Z 
2026-06-04T12:50:06.4019629Z ### REQ-INST-13
2026-06-04T12:50:06.4019986Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T12:50:06.4020202Z - Required stages: impl, unit
2026-06-04T12:50:06.4020221Z 
2026-06-04T12:50:06.4020392Z ### REQ-INST-14
2026-06-04T12:50:06.4021151Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T12:50:06.4021354Z - Required stages: 
2026-06-04T12:50:06.4021376Z 
2026-06-04T12:50:06.4021541Z ### REQ-INST-15
2026-06-04T12:50:06.4023053Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T12:50:06.4023240Z - Required stages: 
2026-06-04T12:50:06.4023260Z 
2026-06-04T12:50:06.4023423Z ### REQ-REACH-1
2026-06-04T12:50:06.4023715Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T12:50:06.4023908Z - Required stages: impl, unit
2026-06-04T12:50:06.4023945Z 
2026-06-04T12:50:06.4024107Z ### REQ-REACH-2
2026-06-04T12:50:06.4024412Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T12:50:06.4024585Z - Required stages: 
2026-06-04T12:50:06.4024605Z 
2026-06-04T12:50:06.4024765Z ### REQ-MSG-1
2026-06-04T12:50:06.4025673Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T12:50:06.4025891Z - Required stages: impl, unit, int
2026-06-04T12:50:06.4025909Z 
2026-06-04T12:50:06.4026072Z ### REQ-MSG-2
2026-06-04T12:50:06.4026600Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T12:50:06.4026801Z - Required stages: impl, unit
2026-06-04T12:50:06.4026820Z 
2026-06-04T12:50:06.4027151Z ### REQ-MSG-3
2026-06-04T12:50:06.4027932Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T12:50:06.4028165Z - Required stages: impl, unit, int
2026-06-04T12:50:06.4028183Z 
2026-06-04T12:50:06.4028360Z ### REQ-NODE-IDENTITY
2026-06-04T12:50:06.4028812Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T12:50:06.4029006Z - Required stages: impl, unit
2026-06-04T12:50:06.4029035Z 
2026-06-04T12:50:06.4029237Z ### REQ-NET-1
2026-06-04T12:50:06.4029943Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T12:50:06.4030145Z - Required stages: impl, unit
2026-06-04T12:50:06.4030166Z 
2026-06-04T12:50:06.4030333Z ### REQ-NET-2
2026-06-04T12:50:06.4030669Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T12:50:06.4030860Z - Required stages: impl
2026-06-04T12:50:06.4030880Z 
2026-06-04T12:50:06.4031059Z ### REQ-NET-3
2026-06-04T12:50:06.4031375Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T12:50:06.4031576Z - Required stages: impl, unit
2026-06-04T12:50:06.4031729Z 
2026-06-04T12:50:06.4031894Z ### REQ-PAIR-1
2026-06-04T12:50:06.4032100Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T12:50:06.4032298Z - Required stages: impl, unit
2026-06-04T12:50:06.4032317Z 
2026-06-04T12:50:06.4032477Z ### REQ-PAIR-2
2026-06-04T12:50:06.4032742Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T12:50:06.4032933Z - Required stages: impl, unit
2026-06-04T12:50:06.4032952Z 
2026-06-04T12:50:06.4033125Z ### REQ-PAIR-3
2026-06-04T12:50:06.4033407Z - Title: Fetch current pairing code from any paired node
2026-06-04T12:50:06.4033595Z - Required stages: impl, unit
2026-06-04T12:50:06.4033613Z 
2026-06-04T12:50:06.4033785Z ### REQ-PAIR-4
2026-06-04T12:50:06.4033984Z - Title: Subnet naming on first pairing
2026-06-04T12:50:06.4034180Z - Required stages: impl, unit
2026-06-04T12:50:06.4034207Z 
2026-06-04T12:50:06.4034379Z ### REQ-PAIR-5
2026-06-04T12:50:06.4034962Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T12:50:06.4035176Z - Required stages: impl, unit
2026-06-04T12:50:06.4035196Z 
2026-06-04T12:50:06.4035354Z ### REQ-PAIR-6
2026-06-04T12:50:06.4035861Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T12:50:06.4036051Z - Required stages: impl, unit
2026-06-04T12:50:06.4036080Z 
2026-06-04T12:50:06.4036236Z ### REQ-PAIR-7
2026-06-04T12:50:06.4036545Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T12:50:06.4036716Z - Required stages: 
2026-06-04T12:50:06.4036733Z 
2026-06-04T12:50:06.4036894Z ### REQ-SEC-1
2026-06-04T12:50:06.4037676Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T12:50:06.4037881Z - Required stages: impl, unit
2026-06-04T12:50:06.4037907Z 
2026-06-04T12:50:06.4038082Z ### REQ-NOTIF-1
2026-06-04T12:50:06.4038788Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T12:50:06.4039004Z - Required stages: impl, unit
2026-06-04T12:50:06.4039023Z 
2026-06-04T12:50:06.4039251Z ### REQ-NOTIF-2
2026-06-04T12:50:06.4040138Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T12:50:06.4040347Z - Required stages: doc, impl, unit
2026-06-04T12:50:06.4040365Z 
2026-06-04T12:50:06.4040517Z ### REQ-UPD-1
2026-06-04T12:50:06.4040737Z - Title: Peer-propagated update over P2P
2026-06-04T12:50:06.4040929Z - Required stages: impl, unit
2026-06-04T12:50:06.4040958Z 
2026-06-04T12:50:06.4041118Z ### REQ-UPD-2
2026-06-04T12:50:06.4041417Z - Title: All binaries signature-verified before handoff
2026-06-04T12:50:06.4041606Z - Required stages: impl, unit
2026-06-04T12:50:06.4041765Z 
2026-06-04T12:50:06.4041945Z ### REQ-UPD-3
2026-06-04T12:50:06.4042280Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T12:50:06.4042496Z - Required stages: impl, unit, int
2026-06-04T12:50:06.4042514Z 
2026-06-04T12:50:06.4042680Z ### REQ-UPD-4
2026-06-04T12:50:06.4043024Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T12:50:06.4043230Z - Required stages: impl, unit
2026-06-04T12:50:06.4043250Z 
2026-06-04T12:50:06.4043409Z ### REQ-UPD-5
2026-06-04T12:50:06.4043678Z - Title: spt-core ripple-updates registered adapters
2026-06-04T12:50:06.4043878Z - Required stages: impl, unit
2026-06-04T12:50:06.4043895Z 
2026-06-04T12:50:06.4044055Z ### REQ-TERM-1
2026-06-04T12:50:06.4044388Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T12:50:06.4044579Z - Required stages: impl, unit
2026-06-04T12:50:06.4044598Z 
2026-06-04T12:50:06.4044767Z ### REQ-TERM-2
2026-06-04T12:50:06.4045116Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T12:50:06.4045321Z - Required stages: impl, unit
2026-06-04T12:50:06.4045339Z 
2026-06-04T12:50:06.4045644Z ### REQ-TERM-3
2026-06-04T12:50:06.4045905Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T12:50:06.4046103Z - Required stages: impl, unit
2026-06-04T12:50:06.4046123Z 
2026-06-04T12:50:06.4046292Z ### REQ-TERM-4
2026-06-04T12:50:06.4046996Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T12:50:06.4047210Z - Required stages: impl, unit, int
2026-06-04T12:50:06.4047229Z 
2026-06-04T12:50:06.4047386Z ### REQ-FRONT-1
2026-06-04T12:50:06.4047729Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T12:50:06.4047904Z - Required stages: 
2026-06-04T12:50:06.4047931Z 
2026-06-04T12:50:06.4048093Z ### REQ-INSTALL-1
2026-06-04T12:50:06.4048478Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T12:50:06.4048663Z - Required stages: 
2026-06-04T12:50:06.4048682Z 
2026-06-04T12:50:06.4048854Z ### REQ-INSTALL-2
2026-06-04T12:50:06.4049122Z - Title: Marketplace-repackaging-friendly install
2026-06-04T12:50:06.4049524Z - Required stages: 
2026-06-04T12:50:06.4049547Z 
2026-06-04T12:50:06.4049728Z ### REQ-INSTALL-3
2026-06-04T12:50:06.4050145Z - Title: Idempotent + interactive-optional first run
2026-06-04T12:50:06.4050322Z - Required stages: 
2026-06-04T12:50:06.4050341Z 
2026-06-04T12:50:06.4050506Z ### REQ-INSTALL-4
2026-06-04T12:50:06.4051830Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T12:50:06.4052021Z - Required stages: 
2026-06-04T12:50:06.4052039Z 
2026-06-04T12:50:06.4052199Z ### REQ-MIGRATE-1
2026-06-04T12:50:06.4052530Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T12:50:06.4052711Z - Required stages: 
2026-06-04T12:50:06.4052728Z 
2026-06-04T12:50:06.4052896Z ### REQ-INFRA-1
2026-06-04T12:50:06.4053254Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T12:50:06.4053427Z - Required stages: 
2026-06-04T12:50:06.4053448Z 
2026-06-04T12:50:06.4053612Z ### REQ-DOCS-1
2026-06-04T12:50:06.4053989Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T12:50:06.4054168Z - Required stages: 
2026-06-04T12:50:06.4054187Z 
2026-06-04T12:50:06.4054353Z ### REQ-DOCS-2
2026-06-04T12:50:06.4054658Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T12:50:06.4054834Z - Required stages: 
2026-06-04T12:50:06.4054853Z 
2026-06-04T12:50:06.4055007Z ### REQ-DOCS-3
2026-06-04T12:50:06.4055562Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T12:50:06.4055757Z - Required stages: 
2026-06-04T12:50:06.4055777Z 
2026-06-04T12:50:06.4055932Z ### REQ-DOCS-4
2026-06-04T12:50:06.4056478Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T12:50:06.4056652Z - Required stages: 
2026-06-04T12:50:06.4056685Z 
2026-06-04T12:50:06.4056854Z ### REQ-DOCS-5
2026-06-04T12:50:06.4057223Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T12:50:06.4057408Z - Required stages: 
2026-06-04T12:50:06.4057425Z 
2026-06-04T12:50:06.4057638Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T12:50:06.4057997Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T12:50:06.4058196Z - Required stages: impl, unit
2026-06-04T12:50:06.4058212Z 
2026-06-04T12:50:06.4058416Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T12:50:06.4058711Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T12:50:06.4058910Z - Required stages: impl, unit
2026-06-04T12:50:06.4058927Z 
2026-06-04T12:50:06.4059120Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T12:50:06.4059740Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T12:50:06.4060064Z - Required stages: 
2026-06-04T12:50:06.4060082Z 
2026-06-04T12:50:06.4060284Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T12:50:06.4060786Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T12:50:06.4060979Z - Required stages: impl, unit
2026-06-04T12:50:06.4060998Z 
2026-06-04T12:50:06.4061194Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T12:50:06.4061540Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T12:50:06.4061751Z - Required stages: impl, unit
2026-06-04T12:50:06.4061772Z 
2026-06-04T12:50:06.4061987Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T12:50:06.4062345Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T12:50:06.4062523Z - Required stages: 
2026-06-04T12:50:06.4062540Z 
2026-06-04T12:50:06.4062733Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T12:50:06.4062993Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T12:50:06.4063171Z - Required stages: 
2026-06-04T12:50:06.4063205Z 
2026-06-04T12:50:06.4063481Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T12:50:06.4063803Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T12:50:06.4064010Z - Required stages: impl, unit
2026-06-04T12:50:06.4064029Z 
2026-06-04T12:50:06.4064233Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T12:50:06.4064518Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T12:50:06.4064706Z - Required stages: impl, int
2026-06-04T12:50:06.4064726Z 
2026-06-04T12:50:06.4064938Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T12:50:06.4065246Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T12:50:06.4065450Z - Required stages: impl, unit
2026-06-04T12:50:06.4065468Z 
2026-06-04T12:50:06.4065698Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T12:50:06.4066013Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T12:50:06.4066217Z - Required stages: impl, unit
2026-06-04T12:50:06.4066234Z 
2026-06-04T12:50:06.4066432Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T12:50:06.4066812Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T12:50:06.4067013Z - Required stages: impl, unit
2026-06-04T12:50:06.4067043Z 
2026-06-04T12:50:06.4067255Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T12:50:06.4067560Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T12:50:06.4067752Z - Required stages: impl, unit
2026-06-04T12:50:06.4067769Z 
2026-06-04T12:50:06.4067988Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T12:50:06.4068317Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T12:50:06.4068521Z - Required stages: impl, unit
2026-06-04T12:50:06.4068540Z 
2026-06-04T12:50:06.4068753Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T12:50:06.4069215Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T12:50:06.4069748Z - Required stages: impl, unit
2026-06-04T12:50:06.4069768Z 
2026-06-04T12:50:06.4070115Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T12:50:06.4070804Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T12:50:06.4071021Z - Required stages: impl, unit
2026-06-04T12:50:06.4071040Z 
2026-06-04T12:50:06.4071245Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T12:50:06.4071615Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T12:50:06.4071810Z - Required stages: impl, unit
2026-06-04T12:50:06.4071831Z 
2026-06-04T12:50:06.4072047Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T12:50:06.4072554Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T12:50:06.4072751Z - Required stages: impl, unit
2026-06-04T12:50:06.4072768Z 
2026-06-04T12:50:06.4072981Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T12:50:06.4073747Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T12:50:06.4073964Z - Required stages: doc, impl, unit
2026-06-04T12:50:06.4073995Z 
2026-06-04T12:50:06.4074212Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T12:50:06.4075086Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T12:50:06.4075480Z - Required stages: impl, unit
2026-06-04T12:50:06.4075501Z 
2026-06-04T12:50:06.4075711Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T12:50:06.4075963Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T12:50:06.4076167Z - Required stages: impl, unit
2026-06-04T12:50:06.4076184Z 
2026-06-04T12:50:06.4076382Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T12:50:06.4076641Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T12:50:06.4076838Z - Required stages: impl, unit
2026-06-04T12:50:06.4076857Z 
2026-06-04T12:50:06.4077072Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T12:50:06.4077384Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T12:50:06.4077585Z - Required stages: impl, unit
2026-06-04T12:50:06.4077616Z 
2026-06-04T12:50:06.4077816Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T12:50:06.4078143Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T12:50:06.4078359Z - Required stages: impl, unit
2026-06-04T12:50:06.4078378Z 
2026-06-04T12:50:06.4078587Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T12:50:06.4078869Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T12:50:06.4079079Z - Required stages: impl, unit
2026-06-04T12:50:06.4079096Z 
2026-06-04T12:50:06.4079350Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T12:50:06.4079863Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T12:50:06.4085724Z - Required stages: impl, unit
2026-06-04T12:50:06.4085788Z 
2026-06-04T12:50:06.4086087Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T12:50:06.4086467Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T12:50:06.4086670Z - Required stages: impl, unit
2026-06-04T12:50:06.4086714Z 
2026-06-04T12:50:06.4086918Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T12:50:06.4087286Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T12:50:06.4087501Z - Required stages: impl, unit
2026-06-04T12:50:06.4087521Z 
2026-06-04T12:50:06.4087733Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T12:50:06.4088067Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T12:50:06.4088272Z - Required stages: impl, unit
2026-06-04T12:50:06.4088291Z 
2026-06-04T12:50:06.4088505Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T12:50:06.4088790Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T12:50:06.4088990Z - Required stages: impl, unit
2026-06-04T12:50:06.4089009Z 
2026-06-04T12:50:06.4089507Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T12:50:06.4090132Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T12:50:06.4090327Z - Required stages: impl, unit
2026-06-04T12:50:06.4090345Z 
2026-06-04T12:50:06.4090877Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-04T12:50:06.4092143Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-04T12:50:06.4092355Z - Required stages: impl, unit
2026-06-04T12:50:06.4092373Z 
2026-06-04T12:50:06.4092569Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T12:50:06.4092993Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T12:50:06.4093200Z - Required stages: impl, unit
2026-06-04T12:50:06.4093220Z 
2026-06-04T12:50:06.4093427Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T12:50:06.4093848Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T12:50:06.4094048Z - Required stages: impl, unit
2026-06-04T12:50:06.4094066Z 
2026-06-04T12:50:06.4094269Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T12:50:06.4094807Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T12:50:06.4095030Z - Required stages: impl, unit, int
2026-06-04T12:50:06.4095186Z 
2026-06-04T12:50:06.4095392Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T12:50:06.4095915Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T12:50:06.4096113Z - Required stages: impl, unit
2026-06-04T12:50:06.4096134Z 
2026-06-04T12:50:06.4096350Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T12:50:06.4097234Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T12:50:06.4097442Z - Required stages: impl, unit, int
2026-06-04T12:50:06.4097460Z 
2026-06-04T12:50:06.4097677Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T12:50:06.4099692Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T12:50:06.4099940Z - Required stages: impl, unit
2026-06-04T12:50:06.4099962Z 
2026-06-04T12:50:06.4100189Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T12:50:06.4101571Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T12:50:06.4101765Z - Required stages: 
2026-06-04T12:50:06.4101785Z 
2026-06-04T12:50:06.4102007Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T12:50:06.4103362Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T12:50:06.4103584Z - Required stages: impl, unit
2026-06-04T12:50:06.4103618Z 
2026-06-04T12:50:06.4103825Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T12:50:06.4104945Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T12:50:06.4105168Z - Required stages: impl, unit
2026-06-04T12:50:06.4105188Z 
2026-06-04T12:50:06.4105388Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T12:50:06.4107211Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T12:50:06.4107435Z - Required stages: impl, unit
2026-06-04T12:50:06.4107452Z 
2026-06-04T12:50:06.4107653Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T12:50:06.4109345Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-04T12:50:06.4109897Z - Required stages: doc, impl, unit
2026-06-04T12:50:06.4109919Z 
2026-06-04T12:50:06.4110090Z ## How to report back
2026-06-04T12:50:06.4110111Z 
2026-06-04T12:50:06.4110453Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T12:50:06.4110471Z 
2026-06-04T12:50:06.4110617Z     {
2026-06-04T12:50:06.4110825Z       "code": "requirement_quality",
2026-06-04T12:50:06.4111023Z       "requirementId": "REQ-...",
2026-06-04T12:50:06.4111460Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T12:50:06.4111660Z       "message": "<short reason>",
2026-06-04T12:50:06.4111901Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T12:50:06.4112068Z     }
2026-06-04T12:50:06.4112087Z 
2026-06-04T12:50:06.4112453Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T12:50:06.4112757Z deterministic findings above don't need to be repeated.
